package com.dss.auto_deploy.controller;

import com.dss.auto_deploy.service.IAdmProjectAutoConfigService;
import com.dss.auto_deploy.dto.*;
import com.dss.auto_deploy.util.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;

/**
* 配置自动触发更新的项目/分支
* @Description:配置自动触发更新的项目/分支控制层
* @author dongshoushan
* @date 2022-10-22 14:13:38
*/
@RestController
@RequestMapping("/admProjectAutoConfig")
@RequiredArgsConstructor(onConstructor = @_(@Autowired))
@Api(tags ="99: 配置自动触发更新的项目/分支")
public class AdmProjectAutoConfigController {

    /**
    * 配置自动触发更新的项目/分支Service
    */
    private final  IAdmProjectAutoConfigService admProjectAutoConfigService;

    /**
    * 新增配置自动触发更新的项目/分支
    * @param addDto
    * @return
    */
    @PostMapping
    @ApiOperation(value = "新增配置自动触发更新的项目/分支", notes="新增配置自动触发更新的项目/分支")
    public Result insert(@RequestBody @Valid AdmProjectAutoConfigAddDto addDto) {
        admProjectAutoConfigService.insert(addDto);
        return Result.success("新增成功");
    }
    @GetMapping("/manualTrigger/{id}")
    @ApiOperation(value = "手动触发", notes="手动触发")
    public Result manualTrigger(@PathVariable Long id) {
        admProjectAutoConfigService.manualTrigger(id);
        return Result.success("手动触发成功");
    }
    /**
    * 修改配置自动触发更新的项目/分支
    * @param updateDto
    * @return
    */
    @PutMapping
    @ApiOperation(value = "修改配置自动触发更新的项目/分支", notes="修改配置自动触发更新的项目/分支")
    public Result update(@RequestBody @Valid AdmProjectAutoConfigUpdateDto updateDto) {
        admProjectAutoConfigService.update(updateDto);
        return Result.success("修改成功");
    }

    /**
    * 批量删除配置自动触发更新的项目/分支
    * @param ids
    * @return
    */
    @DeleteMapping("/{ids}")
    @ApiOperation(value = "删除配置自动触发更新的项目/分支", notes="删除配置自动触发更新的项目/分支")
    public Result deleteBatch(@PathVariable Long[] ids) {
        admProjectAutoConfigService.deleteBatch(ids);
        return Result.success("删除成功");
    }

    /**
    * 分页查询配置自动触发更新的项目/分支
    * @param pageDto
    * @return
    */
    @GetMapping("/page")
    @ApiOperation(value = "分页查询配置自动触发更新的项目/分支", notes="分页查询配置自动触发更新的项目/分支")
    public Result page(AdmProjectAutoConfigPageDto pageDto){
        return Result.success(admProjectAutoConfigService.list(pageDto));
    }


}
